System and method for providing television services

ABSTRACT

A system and method are described for providing interactive television services and for switching between television programs, such as to an interactive program session from another program. An interactive server, capable of providing requested interactive video services to a set of subscribers in a given geographic area, is coupled to a network to which subscriber set top boxes are also coupled. Television programming, which may be furnished by any number of sources, is accompanied by a signal that indicates the availability of other programming, such as interactive television service related to the program being viewed, as well as information to be used in requesting such service. The user, when notified by this signal, may input to the set top box a request for a second program, such as an interactive program or application. The identity of the original program channel is stored, and a session with the video service provider is established over the network. When the session is terminated, the set top box re-tunes the television signal to the original program channel.

FIELD OF THE INVENTION

[0001] The present invention relates in general to the field oftelevision and in particular to the field of interactive television.

BACKGROUND OF THE INVENTION

[0002] Advances in telecommunications and computing technology areleading to the provision of interactive television (TV) on a largescale. Interactive TV involves the use of video gateways and videotransport of sufficient bandwidth for video programmers and enhancedvideo gateway providers to offer their services to residential andbusiness subscribers. Where such facilities are available, subscriberswill not only be able to access these services by passively receivingthem, but will also be able for the first time to interact with theservice providers by communicating requests and commands to theproviders via the same path over which the programming services areprovided (or even via other paths or drivers).

[0003] Interactive TV service is capable of supporting at least thefollowing services: (1) traditional broadcast and cable televisionprogramming; (2) video services, such as pay-per-view (PPV), nearvideo-on-demand (NVOD), video-on-demand (VOD), promo channels,electronic program guides, etc.; (3) cable delivered PC-based services;and (4) interactive services, through the use of a combination ofcompression and digital video technologies. Interactive TV service alsopermits menuing capabilities and upstream signaling from subscribers toservice providers. A subscriber interactive TV connection may, forexample, provide subscribers with a screen of available enhanced videogateway providers and/or video programmers and their telephone numbers,or a menu to interactively order services and/or programs.

[0004] Interactive television may be provided over any number of paths,including coaxial cable or optical fiber, hybrid fiber/coaxial, or anyother suitable path that accommodates sufficient bandwidth for desiredanalog and digital video channels as well as other telecommunicationsservices. Content Providers may include, for example, providers ofinteractive or non-interactive over-the-air programming such ascommercial television stations, cable programming such as weather,travel and entertainment channels, game channels, and on-line servicesof various types.

[0005] Interactive video enables a subscriber to request that an“interactive session” be established between an “interactive server” orsimilar platform maintained by an interactive video service provider anda “client” terminal device at the subscriber's premises. An interactivesession is a two-way communication relationship, and is a preconditionto interactive video services being provided to a subscriber's terminaldevice. Such a session utilizes the necessary downstream bandwidth andresources (defined below) for delivering interactive video service andthe necessary upstream bandwidth from the subscriber's terminal deviceto issue commands to the interactive server. The terminal device maytake the form of what has been termed a “set top box” (STB), or may beany other device capable of performing at least the following functions:(1) exchanging messages (including video-related data) over a networkwith the interactive server; (2) receiving messages from a user inputdevice, such as a hand-held remote control unit; (3) translating videosignals from a network-native format into a format that can be used bythe television or display device; and (4) providing a video signal to atelevision or other display device. A STB may also be capable ofperforming other functions, such as: (1) inserting alphanumeric orgraphical information into the video stream in order to “overlay” thatinformation on the video image; (2) providing graphic or audio feedbackto a user; or (3) possibly the most basic function, simply routing atraditional broadcast signal to a viewing device to which the STB isconnected.

[0006] The STB “client” is “served” by a facility which may be operatedand maintained by the video service provider. This “interactive server”provides, in response to a subscriber request, access to an“application,” which may be something as straightforward as a videoprogram, or may itself interact with the subscriber by transmitting, forexample, a subscriber prompt or menu to allow the subscriber to assert adesired selection from among a set of given commands for the interactiveserver to carry out.

[0007] This added functionality is in large part the result of ahistorically unprecedented convergence of communications and computingtechnology. It makes possible, for the first time, features such as thefollowing. In the game media environment, a subscriber may downloadvideo games or even play them interactively with the interactive serverand/or with other subscribers. An interactive service subscriber mayorder “time shift TV,” in which a particular program may be viewed at atime following its ordinary broadcast time. A subscriber may alsoselectively view desired parts of transactional, informational oradvertising services. For example, a subscriber may view information onthe weather predictions for a given location or at a given time, gatherinformation relating to a particular sporting event or team, obtain newson demand, or query a system regarding a particular real estate market.Alternatively, a subscriber may participate in interactive entertainmentprograms, such as interactive game shows, interactive lottery orgambling, or request musical selections. Subscribers interested ineducational programming, such as a school or a family residence, mayinvoke interactive “edutainment” or “how-to” programs. Interactivecommunication services, such as on-line services historically providedby the public telephone network, may also be accessed via interactiveTV, which permits not only the rapid transfer of files to the subscriberbut also interaction with other subscribers.

[0008] The combination of broadcast and interactive applications overinteractive TV (e.g., interactive programs) creates a new mode ofcommunication in which a user, when informed of the availability of aninteractive application relating to the subject matter of a broadcastprogram, may invoke the application to investigate that subject mattermore thoroughly and according to his or her own tastes.

[0009] Additionally, television viewers, who are accustomed to choosingat will between the available channels with instantaneous results, willexpect to pass from one medium (e.g., broadcast) to another (e.g.,interactive) “seamlessly” with the push of a button. To accommodatetheir viewer's needs, programmers may wish to provide broadcastprogramming, such as a commercial advertisement or a news program, andmake available in the context of that program a related interactivetelevision program.

[0010] The means by which interactive television and broadcasttelevision are provided, however, are generally quite different. The twomedia, for example, are typically supplied from different sources anduse different modulation techniques over different transmission paths.The originating source of broadcast programming is likely to be remotefrom those subscribers interested in invoking an interactive service,making telecommunication between the parties over a dedicated networkprohibitively expensive and complex. By contrast, interactive servers,in order to avoid the expense of high bandwidth communications over suchdistances, can be located geographically close to a corresponding set ofsubscribers, unlike the programming sources or “Content Providers.” Aninteractive server can therefore efficiently provide exclusiveinteractive access to a large number of applications by a large numberof interactive subscribers.

[0011] The technical differences between broadcast programming andinteractive applications, combined with the difficulties of providinginteractive services at any rate, make the provision of a smoothtransition between interactive and broadcast television a difficultproposition and a seamless transition from broadcast television tointeractive television and back an elusive goal.

SUMMARY OF THE INVENTION

[0012] The present invention provides an approach for viewer-friendlyand virtually instantaneous transitioning from a first analog basedtelevision program to a second program, particularly an interactiveapplication program, and further permits a similarly rapid and easilyaccomplished return to viewing the first program.

[0013] To accomplish this convenient and virtually instantaneoustransition between programs such as a broadcast program and aninteractive application or program, the present invention provides asystem for permitting a provider of program content to furnish a videoservice provider with content, such as an interactive program orapplication, and for permitting the video service provider to transmitto the Content Provider an identifying code or address, such as aninteractive callback address. The video service provider associates thisidentifying code or address with a location at which the program orapplication will be stored. The identifying code or callback address maybe a program-specific code that can be used by subscribers to invoke theprogram from the video services provider directly. Alternatively, theidentifying code may be a common identifying code or callback address(which might be called a “well-known callback address”), used by allsubscribing viewers to access a program- or application-specificidentifying code or callback address, which is in turn used to invokethe program.

[0014] According to the present invention, Content Providers maytransmit the identifying code or callback address for a second programin coordination with a first program, so that viewers of the firstprogram, who have access to systems operated by the video serviceprovider, may invoke the second program, which may be an interactiveprogram or application, using that identifying code or callback address.

[0015] Also according to the present invention, the Content Provider maytransmit the identifying code or callback address in the first programsignal, for example, in the vertical blanking interval of the videostream for that program. Alternatively, the identifying code or callbackaddress could be provided in any other suitable out-of-band channel,especially one that is capable of being synchronized with the programsignal, so that the identifying code or callback address may betransmitted at appropriate times during the program.

[0016] Additionally, the present invention permits the Content Providerto transmit with the identifying code or callback address additionalinformation, such as information to be used at the subscriber site togenerate a screen image indicating the availability of additionalcontent from the video service provider.

[0017] The present invention also provides for an interactive server,which may be operated and maintained by the video service provider. Theinteractive server can service requests from Content Providers foridentifying codes or callback addresses, such as interactive callbackaddresses, can store program content from Content Providers, such asinteractive programs or applications, and can associate that contentwith an appropriate identifying code or address, such as an interactivecallback address. The interactive server according to the presentinvention can also service requests for that content from subscribingviewers.

[0018] The subscribing viewers are provided with a set top box orsimilar device adapted to be coupled to a video distribution network towhich one or more video service provider systems are also coupled, andalso adapted to be coupled to a television, computer or any othersuitable display device to reside either outside of, or within, thehousing of the display device. The set top box includes a receiving setcapable of receiving broadband signals over the video distributionnetwork and possibly also over the air. The set top box also includes atleast one processor coupled to the receiving set and programmed todetect the presence and content of an identifying code or callbackaddress, such as an interactive callback address, received by thereceiving set either in a program signal (typically in the verticalblanking interval of that signal) or possibly in an out-of-band signal.The set top box processor is also programmed to store the identity ofthe channel on which the program is being received in one of at leastone information storage devices or memory means to which the processoris coupled. The processor is also programmed to detect and storeinformation accompanying the transmission of the identifying code orcallback address regarding an image to be displayed on the displaydevice (such as a video screen “button” or “icon”) to indicate theavailability of content, such as an interactive application, from avideo service provider. Alternatively, such information regarding theimage to be displayed on the television or other display device may bepre-stored in an appropriate information storage device to which theprocessor is coupled. The processor is also coupled to a means forgenerating a video image based on the received or pre-stored “button” or“icon” information, or alternatively, is programmed to generate thevideo signal and is coupled to the display device in such a manner as toprovide such a signal to that device.

[0019] Furthermore, the set top box processor is adapted to establishcommunication over the video distribution network with the video serviceprovider, upon receiving a request from the subscribing viewer inresponse to seeing the screen button or icon. The processor may firststore in the information storage device the identity of the channel onwhich the program then being viewed is being transmitted. Acommunication session over the network to the video service provider isthen established by transmitting a message including the identifyingcode or callback address, such as the interactive callback address. Ifthe identification code or callback address is a common identificationcode (for example, a “well-known callback address”) the video serviceprovider returns the program- or application-specific identificationcode or callback address, which the processor then may use to invokefrom the video service provider the associated program or application.

[0020] The video service provider transmits to the set top box theidentity of a network service (i.e., a network address) or a channel onwhich the requested program will be provided, and the set top boxprocessor initiates a session with the indicated network service and/orcauses the receiving set to tune to the channel. The set top box thenreceives the program or application from the video service provider.During that session, communication between the set top box and the videoservice provider may be two-way.

[0021] When the program or application is terminated, or when the usersignals the set top box that viewing the second program or applicationis no longer desired, the communication session is terminated. Theprocessor then retrieves the identity of the first program from theinformation storage device, and causes the receiving set to re-tune tothe first program to which the viewer had been tuned.

[0022] It is accordingly an object of the present invention to provide asystem for permitting a Content Provider to furnish a video serviceprovider with program content, such as an interactive application orprogram, and for permitting the video service provider to transmit tothe Content Provider an identifying code or address, such as aninteractive callback address or a “well-known interactive callbackaddress.”

[0023] It is an object of the present invention to provide a system forpermitting a Content Provider to furnish an identifying code or callbackaddress along with a program for directly invoking another program, suchas an interactive program furnished to subscribing viewers by the videoservice provider.

[0024] It is a further object of the present invention to provide asystem for permitting a Content Provider to furnish a common identifyingcode or callback address (such as a “well-known interactive callbackaddress”), used by all subscribing viewers to access a program- orapplication-specific identifying code or callback address that, in turn,is used to invoke the program content from the video service provider.

[0025] It is an additional object of the present invention to permit aContent Provider to transmit the identifying code or callback address incoordination with the program signal, such as in the vertical blankinginterval of the video stream.

[0026] It is a further object of the present invention to permit aContent Provider to optionally transmit the identifying code or callbackaddress in coordination with the program signal, but in any suitableout-of-band channel.

[0027] It is yet another object of the present invention to permit theContent Provider to transmit with the identifying code or callbackaddress additional information, such as information to be used at thesubscriber site to generate a screen image indicating the availabilityof additional content from the video service provider.

[0028] A further object of the present invention is to provide aninteractive server capable of servicing requests from Content Providersfor identifying codes or addresses for program content and to receiveand store such content in association with the identifying code.

[0029] An additional object of the present invention is to provide aninteractive server according to the present invention that can servicerequests for program content from subscribing viewers.

[0030] Another object of the present invention is to provide subscribingviewers with a set top box for detecting the presence and content of anidentifying code or callback address transmitted in coordination witha-program, to store for later retrieval the identity of the channel onwhich the program is being received, to generate a screen image fordisplay on a display device based on information either pre-stored ortransmitted with the identifying code, to establish a session with thevideo services provider using the code, and upon termination of thesession, to fetch the identity of, and re-tune to, the channel thesubscriber was originally watching.

BRIEF DESCRIPTION OF THE DRAWINGS

[0031]FIG. 1 is a high level functional block diagram of certainenvironment and components of a system according to a preferredembodiment of the present invention.

[0032]FIGS. 2A and 2B are a flowchart for the operation of a firstembodiment of a system according to the present invention.

[0033]FIGS. 3A and 3B are a flowchart for the operation of a secondembodiment of a system according to the present invention.

[0034]FIGS. 4A and 4B are a flowchart for the operation of a thirdembodiment of a system according to the present invention.

[0035]FIGS. 5A and 5B are a flowchart for the operation of a fourthembodiment of a system according to the present invention.

[0036]FIG. 6 is a high level diagram of an embodiment of an interactiveserver and certain environment according to the present invention.

[0037]FIG. 7A is a diagram showing the format for an interactivecallback address according to the present invention having errorcorrection check bits.

[0038]FIG. 7B is a diagram showing the contents of an interactivecallback address according to the present invention, with the errorcorrection check bits not shown.

[0039]FIG. 8 is a high level schematic diagram of a preferred embodimentof a set top box according to the present invention including input andoutput means.

[0040]FIG. 9 is a state diagram showing operating states of anembodiment of a set top box according to the present invention,corresponding to the embodiment of the system according to the presentinvention shown in FIGS. 2A and 2B, and indicating conditions leading tostate transitions and processing associated with the states andperformed incident to the state transitions.

[0041]FIG. 10 is a state diagram showing operating states of anembodiment of a set top box according to the present invention,corresponding to the embodiment of the system according to the presentinvention shown in FIGS. 3A and 3B, and indicating conditions leading tostate transitions and processing associated with the states andperformed incident to the transitions.

[0042]FIG. 11 is a state diagram showing operating states of anembodiment of a set top box according to the present invention,corresponding to the embodiment of the system according to the presentinvention shown in FIGS. 4A and 4B, and indicating conditions leading tostate transitions and processing associated with the states andperformed incident to the transitions.

[0043]FIG. 12 is a state diagram showing operating states of anembodiment of a set top box according to the present invention,corresponding to the embodiment of the system according to the presentinvention shown in FIGS. 4A and 4B, and indicating conditions leading tostate transitions and processing associated with the states andperformed incident to the transitions.

DETAILED DESCRIPTION High-Level Architecture of an Embodiment of anInteractive Video Services Network

[0044]FIG. 1 shows the primary components used in a typical setting forimplementing an embodiment of the systems, devices and methods accordingto the present invention. A video service provider 1, responsible forproviding interactive applications, operates and maintains a systemequipped to receive signals as well as interactive applications andother content from one or more Content Providers A, B, C, . . . , N,respectively referred to by numerals 41-44. The means by whichinteractive applications are furnished by the Content Providers to thevideo service provider 1 is discussed in detail below and in the sectionentitled “Assignment of Interactive Callback Address.”

[0045] Content Providers may be any original or secondary source ofprogramming or information generally, including, for example,interactive or non-interactive over-the-air programming such ascommercial television stations, cable programming such as weather,travel and entertainment channels, game channels, and on-line servicesof various types. Content Providers may alternatively broadcast directlyto viewers, without the necessity of the broadcast being received andretransmitted to subscribers.

[0046] Over-the-air broadcast Content Providers such as commercialtelevision stations, which may not provide programming by way of thevideo service provider 1 may nevertheless furnish the video serviceprovider 1 with interactive applications associated with theirbroadcasts. An example of such a Content Provider is Content Provider A41. According to an approach described below, a video service provider 1that has received an interactive application from Content Provider A 41may then provide access to the interactive application to subscribers 70of the video service provider 1, in response to subscriber requests.

[0047] Content Providers that may not transmit programming to viewersover the air but which may provide it via cable, for example, such asweather, entertainment and game program providers, which may berepresented by Content Provider B 42, may provide programming to viewersvia the video service provider 1. This programming could be sent to thevideo service provider 1 in the form of an RF transmission, in whichcase the signal would be received and suitably processed by RF equipment25. Alternatively, the programming might be transmitted to the videoservice provider 1 over, for example, a network according to a cell- orpacket-switching or other suitable protocol. In the latter event, theprogramming signal could be received at network provider 10 via thevideo service provider 1 and switch 12. Switch 12 would in turn providethe received signal, along with numerous other signals it would ingeneral handle, to signal processor 14, which conditions the signal forreceipt and transmission by RF equipment 25.

[0048] Content Providers A-N may also furnish the video service provider1 with one or more interactive applications which the video serviceprovider 1 may in turn provide to subscribers 70 of the video serviceprovider 1 in response to subscriber requests.

[0049] Other providers of television content such as advertisers, whichmay be represented by Content Provider C 43, may not provide services toviewers but rather furnish content originating with them to broadcastersthat incorporate that content into their own broadcasts. They may alsofurnish interactive applications to the video service provider 1, asfurther described below. The video service provider 1 may then provideaccess by subscribers 70 to the interactive application.

[0050] Signals containing programming furnished by the Content ProvidersA-N (ref. numerals 41-44) may have inserted into them interactivecallback addresses by one or more ICA insertion mechanisms. For example,ICA insertion mechanism 20 can be connected via suitable communicationpaths to Content Provider B 42 and to interactive server 5. Insertionmechanism 20 can be any known equipment for inserting information in atelevision signal, for example, in line 21 of the vertical blankinginterval of an NTSC video signal. Content Provider B 42 may decide totransmit a broadcast, such as a commercial, having an associatedinteractive component or application that may have been provided to thevideo service provider 1 and is stored in the interactive server 5.Content Provider B 42 then queries interactive server 5 for the networkaddress and application ID for the associated interactive component. Inresponse to the query, the interactive server 5 identifies the networkaddress and application ID for the associated interactive componentwhich, together, constitute an interactive callback address or ICA.Content Provider B 42, which is able to issue instructions to ICAinsertion mechanism 20, inserts the ICA received from the interactiveserver 5 into the transmission (e.g., of the commercial) when it isbroadcast. As will be further described below, a properly equippedsubscriber STB 100 will be able to sense the ICA on that broadcastchannel and then display a button or icon on the viewing screen over thebroadcast channel and also store the ICA. If the subscriber selects thedisplayed button, the STB 100 establishes a session with interactiveserver 5 and receives the interactive program or application associatedwith the broadcast.

[0051] An ICA may be inserted in a broadcast signal by other means. Forexample, ICA insertion mechanism 22 can be operated and controlled bythe video service provider 1. ICA insertion mechanism 22 can be anyknown mechanism for inserting information into a television signal (aswith ICA insertion mechanism 20). A communication path is establishedbetween insertion mechanism 22 and interactive server 5. ICA insertionmechanism 22 is also in communication with Content Provider B 42 andwith RF equipment 25 in network provider 10. Content Provider B 42 maydecide to air a broadcast, such as a commercial, having an associatedinteractive component or application available on interactive server 5.As shown in FIG. 1, Content Provider B 42 may broadcast directly to RFequipment 25 or through switch 12. In the event that the broadcast willbe directly to the RF equipment 25, Content Provider B 42 prior to orduring airing of the broadcast transmits a notice to video serviceprovider 1 that the broadcast program is to be transmitted at a giventime. In response to this notice, the interactive server 5 identifiesthe network address and application ID for the interactive componentassociated with the broadcast, which, together, constitute aninteractive callback address or ICA. Interactive server 5, whichmaintains control over the ICA insertion mechanism 22 inserts the ICAreceived from the interactive server 5 into the transmission (e.g., thecommercial) when it is broadcast and communicates the resultant signalto RF equipment 25 of network provider 10.

[0052] In the event that a Content Provider such as Content Provider B42 is transmitting a broadcast via switch 12 in network provider 10, ICAinsertion mechanism 24 is in communication with interactive server 5,Content Provider B 42, and switch 12 of network provider 10. As with theICA insertion mechanism 24, Content Provider B 42 prior to or duringairing of the broadcast transmits a notice to video service provider 1that the broadcast program is to be transmitted at a given time. Inresponse to this notice, the interactive server 5 identifies the networkaddress and application ID for the interactive component associated withthe broadcast, which, together, constitute an interactive callbackaddress or ICA. Interactive server 5, which maintains control over theICA insertion mechanism 24, as well as ICA insertion mechanism 22,inserts the ICA received from the interactive server 5 into thetransmission (e.g., the commercial) when it is broadcast, andcommunicates the resultant signal to switch 12 of network provider 10.

[0053] In one embodiment of the invention, a video service provider 1provides its services using at least some of the components shown inFIG. 1. The services provided by video service provider 1 may includevoice, data, and video services, including interactive TV and cablechannel service, and including both service that is multi-cast (to allsubscribers) and switched (to particular individual subscribers), whichmay be interactive in nature. The primary functionality of the serviceprovider 1 in this embodiment is provided by interactive server 5, whichstores and manages the interactive applications provided by the ContentProviders, and which responds to requests from subscribers 70 duringinteractive sessions subscribers 70 initiate. Interactive server 5 isshown and described in greater detail in FIG. 6 and the accompanyingtext.

[0054] Although the present discussion focuses on the provision ofinteractive applications, the video service provider 1 may be anenhanced video gateway provider, offering service including menuing andnavigation capabilities, billing and collections, information services,storage and order processing. As in the embodiment shown in FIG. 1, the“Level 2” or “L2” Service, presently defined, along with the subscriber70 set top box (“STB”) 100, by the Federal Communications Commission(“FCC”) as the unregulated portion of a video services network, isimplemented by the video service provider 1. In this embodiment, thevideo service provider 1 is physically separated from the “Level 1” orL1 service, defined by the FCC as the regulated portion of a videoservices network and the portion of the system known as “video dialtone,” functionality of which is implemented by network service provider10 in FIG. 1. In this configuration, the L1 service might serve a numberof such video service providers (although only one is shown anddescribed for convenience). Alternatively, the video service provider 1may at the same site provide both L1 and L2 services.

[0055] Interactive server 5, which is part of the L2 Service, is linkedto a switch 12, part of the L1 service, for transferring data accordingto any desired protocol or scheme, such as the ATM cell-switchingprotocol, for example. The switch 12 may also switch video signals fromContent Providers, as shown FIG. 1 for Content Providers B-N (referencenumerals 42-44, respectively), to one or more video signal processors 20for delivery to the network distribution facilities. In an embodiment ofthe invention, signal processing equipment 14, network controller 16, RFequipment 25 and electrical/optical converter 30 all serve to interfacethe switch 12 with the broadband distribution system 50.

[0056] The signal processing equipment 14 receives digital video signalsand transforms them into properly timed and mapped broadband signals fortransmission to subscribers. One example of the standard according towhich such transformation may be performed is the MPEG-2 standard(Moving Pictures Expert Group standard 2, an international video andaudio compression and transmission standard described in ISO/IEC CD13818-1, the contents of which are incorporated by reference herein);however, any other suitable standards, formats, protocols, datastructures, sequences or organization schemes could also be employedjust as easily and effectively.

[0057] Network controller 16 receives input via signal processor 14 fromthe STB 100 of subscriber 70 and sends output to the switch 12, signalprocessor 14, and to the interactive server 5 in order to establishnetwork sessions that permit downstream transmission of broadcast andinteractive applications from the interactive server 5, as well asupstream signalling from STB 100 of subscriber 70. The networkcontroller 16 output to switch 12 and signal processor 14 alsoprovisions network resources to achieve these functions.

[0058] The RF equipment 25 provides RF modulation and RF combining fortransmission of video signals onto the broadband distribution system 50.It receives input from the switch 12 in, for example, ATM format and mayreceive input directly from Content Providers, such as the ContentProvider B 42. It provides output in the form of RF transmission eitherdirectly (not shown) onto a broadband RF distribution network 50, or ifthe broadband RF distribution network is implemented with optical fiber,it provides output to electrical/optical converter 30. In this event,converter 30 transforms the input received from the RF equipment 25 andplaces it onto the broadband distribution system 50.

[0059] The switch 12, network controller 16, RF equipment 25,electrical/optical converting equipment 30 and broadband distributionsystem 50 together make up at least part of the L1 service provided bynetwork service provider 10. Network service provider 10 is responsiblefor setting up and maintaining a communications interface between theinteractive server 5 and the STBs 100 of a node 60 of subscribers.Network service provider 10 receives an application transmission fromthe interactive server 5 in the downstream direction. Network serviceprovider 10 receives application transmission in the upstream directionfrom subscriber STBs 100 (to be discussed at greater length below) viabroadband RF transmission.

[0060] As shown in FIG. 1, provision of programming by the ContentProviders 41-44 may be: directly to viewers, including one or moresubscribers 70, who may receive the signal, for example, with aconventional antenna (see Content Provider A 41); via the serviceprovider without requiring digital switching or conversion to broadband,when the signal is already in broadband format which may be the case,for example, if the Content Provider is a provider of over-the-air orcable channel service (see Content Provider B 42); or via the serviceprovider 1 through the switch 12 and signal processor 14. Not shown inFIG. 1, but described below with reference to FIGS. 6 and 7, is theprovision of interactive applications from the Content Providers 41-44to the video service provider 1, and the provision of an identifyingcode such as an interactive callback address from the video serviceprovider 1 to the Content Providers 41-44.

[0061] A video signal provided by, or by way of, the video serviceprovider 1 is placed on the broadband distribution system 50. Broadbanddistribution system 50 is most preferably a broadband network withbandwidth on the order of 750 Mhz, but it may feature a suitablebandwidth for the program content and functionality desired. In thepresently described embodiment of the video dial tone system, thedistribution is partitioned into a 50-750 Mhz downstream path for theprovision of video services and a 5-42 Mhz upstream path for signallingby a subscriber 70 to the video service provider 1.

[0062] Broadband distribution system 50 provides a link between thevideo service provider 1 and one or more nodes 60 of subscribers 70. Onesuch subscriber node 60 is shown in FIG. 1. In an embodiment of thevideo dial tone system, a subscriber node 60 may include a remoteterminal 65, which converts optical signals received over the network toelectrical signals. The electrical signals are then provided on acoaxial distribution system 66 to a number of taps (not shown), each ofwhich may serve a number of subscribers 70.

[0063] Subscriber 70 is situated similarly to a typical televisionviewer in a number of respects. As shown in FIG. 1, the subscriber isequipped-with one or more televisions 80, 90 or other suitable imagemonitoring devices. As depicted in the Figure, a television 90 may beconnected directly to the coaxial distribution system 66, rather thanvia the STB 100, as in the case of television 80. The subscriber isfurther equipped with a set top box 100 that is also coupled to thecoaxial distribution system 66. The STB 100 may be a device with certainsimilarities to conventional cable company STBs. However, the particularrequirements of the STB 100 for implementing the present invention,including functionality not present in conventional STBs, are shown ingreater detail in FIG. 8, which shows the components of an embodiment ofan STB 100, and FIGS. 9 to 12, which depict the logic flow for fourembodiments of an STB 100 according to the present invention andcorresponding respectively to FIGS. 2A-B to 5A-B.

Operation of Several Embodiments of a System According to the PresentInvention

[0064] An interactive application must be associated with an identifyingcode such as an interactive callback address if it is to be invoked bysubscribers. The provision of this code or address to subscribers in thecontext of other programming is what allows a subscriber 70 with theproper equipment and data links to invoke the interactive application.The provision of an address in response to a request by a ContentProvider can be accomplished in several ways, to be discussed at furtherlength below. In addition, the address can be provided to the subscriber70 in various ways, and the manner in which this address (andinformation regarding the availability of an interactive application) isprovided determines to a certain extent the overall functioning of thesystem. Four illustrative approaches to providing an address, which maybe referred to as an “interactive callback address” or “ICA,” will bediscussed, along with the operation of systems according to the presentinvention for implementing these approaches, in relation to FIGS. 2A,2B, 3A, 3B, 4A, 4B, 5A and 5B. These Figures present each of the fourapproaches as a logic flow. The approaches are to be taken withoutlimitation as examples of ways in which devices, systems, and methodsaccording to the present invention may be carried out. The division ofthese logic flows into the boxes shown in the Figures is also by way ofexample, rather than of limitation (as is the remainder of thisdocument).

Application-Specific Interactive Callback Address Transmitted withBroadcast and Identified by Standard Button Overlay

[0065] In FIG. 2A, at 205, an ICA is established (as further describedbelow) for a particular interactive application associated with givenprogramming. The ICA describes a logical address that would map to aninteractive server's network address, includes an application ID, andmay include a “timeout” period, which is the time that the button shouldbe displayed on the broadcast screen. The STB 100 may also have astandard default timeout period, if no timeout is sent with the ICA. Asubscriber's STB 100, when equipped with this ICA, can call theinteractive server 5 to establish a session with the interactiveapplication associated with the program.

[0066] At 210, the ICA is delivered to a medium (such as, for instance,a provider of program material such as video tape or live broadcast)and, in a preferred embodiment of the invention, is inserted or storedin the vertical blanking interval (VBI) of the desired programassociated with the medium. As an alternative to providing the ICA inthe VBI of a broadcast program, any other synchronized in-band orout-of-band transmission system may be used. As further described below,the ICA serves as a complete or partial basis for the STB 100 of asubscriber 70 to generate a signal representing a “button” for inclusionon the screen of the television 80 of subscriber 70. The ICA is insertedin the program such that the interactive button may be generated by asubscriber's STB 100 to appear at the desired time on the screen of asubscriber 70 tuned to that program. A “remove button” message may alsobe inserted in the VBI (or, again, another synchronized in-band orout-of-band transmission system) at the point in time when the buttonshould be removed by the STB 100. Alternatively, the button may beremoved if a new ICA is received, or if a timer expires, or finally, ifthe broadcast channel is changed. If, on the other hand, the button isto remain continuously on the screen, the ICA may be inserted atperiodic intervals in the program.

[0067] At 215, the program is delivered on a given channel. If the ICAwas inserted into the VBI, it will of course be included as part of thetransmission. Alternatively, the ICA may be sent over another in-band orout-of-band transmission system synchronized with the program.

[0068] Referring to FIG. 2B, at 220, the STB 100, which is tuned to agiven channel, listens for the ICA in the VBI or other appropriatetransmission. If an ICA is detected, at 225, the STB 100, at 230,overlays a screen button having a standard predetermined configurationon the image displayed on the screen of TV 80 to which the STB 100 isconnected. The provision and storage of the information required togenerate the standard button is discussed at greater length below in thecontext of the STB 100. Also at 230, STB 100 sets an internal timer to atimer value sent as part of the ICA, or if no timer value is sent, to astandard timeout value. If no ICA is detected, the subscriber 70continues watching the program, at 285, and the STB 100 continues tolisten for an ICA, at 220.

[0069] As indicated at 235, if the subscriber 70 has selected thedisplayed button, at the next step, 240, STB 100 stores the identity ofthe current broadcast channel. STB 100 then resolves the ICA from alogical address to a network address and then uses the ICA to establishan interactive session between itself and the interactive server 5corresponding to the ICA. At this point the STB 100 stores the identityof the current channel for later retrieval, erases the button from thescreen, and then tunes to the correct channel for maintaining theinteractive session, which channel was received from the interactiveserver 5 according to standard protocols when STB 100 requested aninteractive session.

[0070] As indicated at 245, the interactive server 5 receives upstreamdata from the STB 100 and, in response, sends appropriate video screens,text, graphics, scripts, and/or other information downstream to the STB100. The STB 100, at 250, displays on the TV 80 the interactive sessionreceived from the interactive server 5, and sends subscriber 70responses upstream to the interactive server 5.

[0071] As indicated at 255, the STB 100 checks whether the interactivesession has been terminated. This event will occur at the end of theinteractive application, in which case the interactive server 5terminates the session. Termination may also, of course, occur if thesubscriber 70 requests it. If the session has been terminated, the STB100 deletes the ICA, retrieves the identity of the channel that waspreviously being watched, and re-tunes the TV 80 to that channel. If thesession has not been terminated, the interactive server 5 continues toreceive upstream information from the STB 100 and to send video screens,text, graphics, scripts, and/or other interactive information downstreamto the STB 100, as shown at 245.

[0072] At 265, after the STB 100 has returned the TV 80 to the originalprogram channel, at 260, the STB 100 queries whether the button is stillon the screen. If it is, the next query, at 270, is whether the STB 100has received a “remove button” message. If the STB 100 has received the“remove button” message, then, at 275, it erases the button.Alternatively, if the STB 100 has not received the “remove button”message, but the timer has reached the timer value transmitted with theICA indicating that the timeout period has elapsed (described in furtherdetail below in connection with the STB 100 logic), the STB 100 erasesthe button.

[0073] If, at 235, it had been determined by the STB 100 that thesubscriber 70 did not select the displayed button, the STB 100 checkswhether it has received a “remove button” message or if the timeoutperiod has expired, at 270. If either of these conditions has occurred,the STB 100 erases the button at 275 and deletes the ICA. Following 275or 280, the viewer continues watching the program, at 265, and,returning to 220, the STB 100 resumes listening for an ICA.

Well-Known Interactive Callback Address Transmitted With Program andIdentified by Standard Button Overlay

[0074] An alternative to the application-specific callback addressingscheme described above in connection with FIGS. 2A and 2B is presentedin FIGS. 3A and 3B. These figures show the logical flow of an approachin which a single common identifying code or “well-known” interactivecallback address is provided to all subscribers 70, indeed all viewers,but which only the subscribers 70 use if they elect to invoke thatapplication from the interactive server 5.

[0075] At 305, a program- or application-specific identifying code orICA is established (as further described below) for a particularinteractive application associated with a given program. As with thefirst approach, the ICA describes a logical address that would map to aninteractive server's network address, includes an application ID, andmay include a “timeout” period, which is the time that the button shouldbe displayed on the broadcast screen. Also, a well-known interactivecallback address (“WKICA”) is established for all interactiveapplications associated with all programs. The WKICA generally includesthe same sort of information as does the ICA.

[0076] The WKICA is a common address used by all STBs 100. The STBs 100call the WKICA to get the ICA information associated with the particularinteractive application, (which would include the server ID if thesubscriber were to have access to more than one interactive server).Once the STB 100, using the WKICA, has obtained the desired ICA, it willcall for the desired interactive application using that ICA.

[0077] At 310, the WKICA is delivered to a medium (for instance, aprovider of program material such as video tape or live broadcast) and,in a preferred embodiment of the invention, is inserted or stored in theVBI of the desired program associated with the program medium. As analternative to providing the WKICA in the VBI of a program, any otherin-band or out-of-band transmission system may be used if it issynchronized with the program. The WKICA is inserted so that it willappear on the TV 80 screen of subscriber 70 during the desired time inthe program. A “remove button” and/or time expiration message may alsobe inserted in the VBI (or other synchronized transmission system) atthe point in time when the button should be removed. If the button is toremain continuously on the screen, the WKICA may be inserted at periodicintervals throughout the program.

[0078] The program is then transmitted at 315, on a particular channel.The WKICA is thus included in the VBI as part of the programtransmission, or it may be sent on another in-band or out-of-bandtransmission system synchronized with the program.

[0079] Referring to FIG. 3B, the STB 100, tuned to a particular programchannel, listens, at 320, for the WKICA in the VBI or other appropriatetransmission system. If, at 325, a WKICA in the VBI or other system isdetected, an interactive session is established at 330; otherwise, theviewer continues watching the program and a timer is set, at 385.

[0080] At 330, the STB 100 calls the WKICA to-establish an interactivesession with the application identified by the WKICA. At the outset ofthe session, the STB 100 provides the application identified by theWKICA with the identity of the channel being viewed by the subscriber70. The STB 100 receives from the application specific informationassociated with the program channel, such as the type of button todisplay and the specific ICA to call to establish the appropriateinteractive session, assuming the subscriber 70 selects it by pressingthe button. The STB 100 sets the timer and displays on the screen of theTV 80 the type of button specified by the application associated withthe WKICA and proceeds to wait for a “remove button” message or for theperiod for which the timer is set to expire. The STB 100, usingcomponents and according to processing further described below,generates the button based in part on information previously stored, forexample by software download, in the STB 100.

[0081] The STB 100 also waits, at 335, for the subscriber to select thebutton on the viewing screen. If a selected button is detected, the STB100 at 340 stores the identity of the current broadcast channel inmemory for later retrieval. It then calls the specific ICA it hasreceived from the WKICA to establish the appropriate interactive sessionfor the button that was pressed. The STB 100 also erases the button fromthe screen, and tunes to the appropriate channel for the interactivesession.

[0082] During the interactive session, such as at 345, the interactiveserver 5 receives upstream information from the STB 100 and sendsdownstream to the STB 100 text, graphics, scripts, and/or otherinformation. As shown at 350, the STB 100 displays the interactivesession on the screen of TV 80, and receives viewer commands andinteractive responses and sends those signals upstream to theinteractive server 5.

[0083] The STB 100, as indicated at 355, determines whether theinteractive session has been terminated, either at the subscriber'scommand, or if the end of the interactive application has been reached.If the interactive application has not been terminated, the STB 100 andthe interactive server 5 continue providing the functionality in thestates shown at points 345 and 350. If the interactive session has beenterminated, the STB 100 at 360 deletes the specific ICA and retrievesfrom memory the identity of the program channel the subscriber 70 hadbeen viewing and re-tunes to that channel so that the subscriber 70, at365, can continue viewing the broadcast program on that channel.

[0084] If at 335 the viewer had not selected the broadcast screenbutton, STB 100 would, at 370, check whether a “remove button” messagehas been received or whether the timeout period has expired. If not, STB100 returns to 335, checking whether the displayed button has beenselected. If a “remove button message” has been received or the timeoutperiod expired, STB 100 erases the button, at 375, and deletes thespecific ICA. The viewer may then continue viewing the broadcast programat 365, and the STB 100, at 320, continues listening for a WKICA in theVBI.

Application-Specific Interactive Callback Address Transmitted WithProgram and Identified by a Non-Standard Button Overlay

[0085] A third embodiment of a system and method according to thepresent invention is depicted in FIGS. 4A and 4B. In FIG. 4A at 405 aninteractive callback address package (ICAP) is established for aninteractive application associated with a given program. This ICAPincludes an ICA and may also include customized button information. Thiscustomized information may include:

[0086] a) type(s) of button(s);

[0087] b) characteristics of button(s);

[0088] c) location on the screen of button(s);

[0089] d) text of button(s); and

[0090] e) other unique characteristics of button(s).

[0091] The ICA describes a logical address that would map to aninteractive server's network address, includes an application ID, andmay include a “timeout” period, which is the time that the button shouldbe displayed on the broadcast screen. As with the first describedembodiment, the ICA will be used by the STB 100 to address a call toestablish an interactive session associated with the program.

[0092] At 410, the ICAP is delivered to a program medium (for instance,a provider of program material such as video tape or live broadcast)and, in a preferred embodiment of the invention, is inserted or storedin the vertical blanking interval (VBI) of the desired programassociated with the program medium. As an alternative to providing theICAP in the VBI of a program, any other synchronized in-band orout-of-band transmission system may be used. The ICAP is inserted in theprogram so that it will appear on the subscriber's 70 screen at thedesired time. In addition to the ICAP, a “remove button” message mayalso be inserted in the VBI (or other transmission system) so that thebutton will be removed at the desired time. If it is desired that thebutton remain continuously on the viewing screen, the ICAP may beinserted at periodic intervals throughout the program.

[0093] At 415, the program is transmitted on a given channel. Along withthis program, the ICA may be included either in the VBI, or transmittedon another in-band or out-of-band transmission system synchronized withthe program.

[0094] Referring to FIG. 4B, an STB 100 tuned to the channel listens at420 for the ICAP in the VBI or other appropriate transmission. At 425,if an ICAP is detected, the STB 100, at 430, uses any customized buttoninformation contained in the ICAP to generate and overlay a customizedbutton in a customized location over the image. If the ICAP does notcontain information for a customized button, the STB 100 uses standarddefaults that have been previously stored in the STB 100, for examplevia software download. The STB 100 sets an internal timer to a timervalue sent as part of the ICAP, or if no timer value is sent, to astandard timeout value. When the button is being displayed, the STB 100listens for the remove button message to remove the button.

[0095] If, at 425, no ICAP was detected, the subscriber 70 simplycontinues watching the program, at 485, and the STB 100 continues tolisten for the ICAP, at 420.

[0096] If the subscriber 70 selects the displayed button, at 435, theSTB 100, at 440, stores in memory the identity of the current channel.The STB 100 then uses the ICA from the ICAP it has received to establishan interactive session between the STB 100 and the appropriateinteractive server 5. The STB 100 erases the button from the screen, andtunes to the correct channel for the interactive session, which channelwas received from the interactive server 5 according to standardprotocols when STB 100 requested an interactive session.

[0097] When the interactive session has been established, theinteractive server 5, at 445, receives upstream information from the STB100 and sends video screens, text, graphics, scripts, and/or otherinformation downstream to the STB 100. As shown at 450, the STB 100displays the interactive session on the screen of the TV 80. The STB 100also receives viewer interactive responses and sends responses upstreamto the interactive server 5.

[0098] If the interactive session is terminated, which may be a resultof the subscriber 70 issuing a termination command, or simply as aresult of the completion of the interactive application, STB 100 detectsthis event at 455 and, at 460, deletes the ICAP and re-tunes to thechannel that was originally being watched and the subscriber 70continues watching the program on that channel, at 465. If a terminationis not detected, the interactive session continues at 445 and 450.

[0099] If, at 435, it had been determined by the STB 100 that thesubscriber 70 did not select the displayed button, the STB 100determines, at 470, whether it has received a remove-button message orwhether the timer has expired. If neither event has occurred, the STB100 continues checking whether viewing subscriber 70 has selected thebutton, at 435. If a remove button message has been received at 470, theSTB 100 erases the button and deletes the ICAP, at 475; if it has not,the STB 100 at 475 erases the button and deletes the ICAP only if abutton timeout period has been exceeded, at 470. After-the STB 100erases the button and deletes the ICAP, the viewing subscriber 70continues watching the broadcast program, at 465. Also, the STB 100resumes listening for the ICAP at 420.

Application-Specific Interactive Callback Address and Button OverlayBoth Transmitted with Program

[0100] In a fourth embodiment of a system and method according to thepresent invention, the logical flow of which is illustrated at FIGS. 5Aand 5B, an application-specific ICA is transmitted with the program,along with a button inserted on the video program at the point oftransmission.

[0101] Referring to FIG. 5A, at 505, an ICA is established for aparticular interactive application associated with a given program. Aswith the previously described embodiments, the ICA describes a logicaladdress that would map to an interactive server's network address,includes an application ID, and may include a “timeout” period, which isthe time that the button should be displayed on the broadcast screen.The ICA ultimately will be used by the STB 100 of the subscriber 70viewing the program to invoke an interactive session associated withthat program.

[0102] At 510, the ICA is delivered to a medium (for instance, aprovider of material such as video tape or live broadcast) and, in apreferred embodiment of the invention, it is inserted or stored in thevertical blanking interval (VBI) of the desired program associated withthe medium. As an alternative to providing the ICA in the VBI of aprogram, any other in-band or out-of-band transmission system may beused if it is synchronized with the program. The ICA is inserted intothe program so that it will appear at the desired point in the program,and the button is also inserted into the program so that it will appearat that desired time on the screens of all viewers receiving theprogram, including viewers that are not subscribers and that lack an STB100. When the button is removed from the program image (and thus theviewers' screens), a “remove button” message is inserted in the VBI.When the STB 100 of a viewing subscriber 70 receives this message, theSTB 100 deletes the ICA. The timeout period can be sent with the ICA ifthe duration of the button display, and hence how long the ICA is to beactive, is predetermined.

[0103] The program, at 515, is transmitted on a particular channel. Asdescribed above in connection with 510, the ICA may either have beenincorporated in the transmission, or be sent on an in-band orout-of-band transmission system that is synchronized with the program.

[0104] STB 100 at 520 checks for an ICA in the VBI of the video stream(or in another suitable preselected transmission). As indicated at 525,if an ICA is detected, the STB 100 does not overlay a button, at 530,since the button is overlaid at the broadcast source and has appeared onthe screen when the ICA arrived at the STB 100. Rather the STB 100 setsthe timer and begins checking for a “delete ICA” message or timeout.

[0105] If the ICA was not detected, the subscriber 100 simply continueswatching the program, at 565.

[0106] The STB 100, at 535, checks whether the subscriber 100 hasselected the displayed button. If selection of the button is detected,the STB 100 stores the identity of the broadcast channel being viewed.It then uses the ICA to establish an interactive session, at 540, withthe appropriate interactive server 5. The STB 100 receives and thentunes to the correct-channel for an interactive session.

[0107] If, at 535, the subscriber 70 had not selected the buttondisplayed on the screen of the TV 80, the STB 100 continues checking, asshown at 570, whether a “delete ICA” message has been received or if thetimer has expired. If either or both these events have occurred, thenthe STB 100, at 575, deletes the ICA. After 575, the viewer continueswatching the program, at 565.

[0108] During the interactive session, the interactive server 5, at 545,receives upstream information from the STB 100 and sends video screens,text, graphics, scripts, and/or other information downstream to the STB100. At 550, the STB 100 displays the interactive session on the screenof the TV 80. It also receives viewer interactive responses and commandsand sends them upstream to the interactive server 5.

[0109] The STB 100 checks, at 555, whether the interactive session hasbeen terminated. If it has not, the interactive session continues, at545 and 550. If the session has been terminated, which may have occurredas a result of a command issued by viewing subscriber 70, or due to theend of the interactive application having been reached, the STB 100deletes the ICA, retrieves the identity of the channel, which subscriber70 had been watching, and re-tunes to that channel.

[0110] The subscriber 70 continues watching the program, at 565. The STB100 continues to listen for the ICA, at 520, in the VBI or otherappropriate transmission.

Assignment of Interactive Callback Address

[0111] An interactive callback address (ICA) is associated with aninteractive application to enable subscribers to invoke an interactiveapplication, as well as to uniquely identify an interactive applicationfor any number of additional reasons. The ICA describes a logicaladdress that maps to an interactive server's network address, includesan application ID, and may also include a “timeout” period message,which indicates the amount of time that a button indicating theavailability of an interactive application or program should bedisplayed on the broadcast screen. The ICA may be furnished inassociation with a program to subscribers in a variety of ways, two ofwhich are described below. Once the ICA is received by a subscriberterminal device such as an STB 100, the ICA may be stored so that itwill be available at the request of subscriber 70 to call and establishwith an interactive server 5 an interactive session associated with aprogram. The ICA may be assigned in a number of ways, two of which aredescribed below, with reference to FIG. 1, FIG. 6 and FIGS. 7A and 7B.

Case I: Locally Assigned Interactive Callback Addresses

[0112] When content, such as an interactive news program or a commercialadvertisement, is specifically developed for an interactive platform, asmay be the case for locally originating programming, a Content Provider45 requests an ICA from a video service provider 1 operating aninteractive server 5 linked to one or more nodes 60 of subscribers 70.This request may be made by any suitable means. It could be done simplyby making a telephone call to the video service operator 2, or it couldbe done by purely electronic means, such as e-mail, or automatically, orremotely invoking an application on the interactive server 5 designedfor this purpose. The Content Provider 45 also then transmits to thevideo service provider 1 the interactive application. This transmissionmay be done by physically sending the interactive application to thevideo service provider 1 on tape, magnetic disk, optical disk or othersuitable medium; alternatively, it could be done by electronic oroptical transmission of the data, such as over a network.

[0113] After receiving the request for the ICA, the interactive server 5assigns an ICA consistent with the state of the interactive server 5 andits memory 8 and other storage devices 8A and 9. The video serviceprovider 1 also stores the application received from the ContentProvider in a suitable storage device, such as video storage 9, andstores the ICA and perhaps information relating to the interactiveapplication in a database maintained, for example, in disk storage 8A.Such additional information may include an application ID selected bythe video service provider 1.

[0114] If the interactive server 5 is called by a subscriber 70 with anICA, the interactive server 5 may thus retrieve using the ICA anyinformation necessary for locating and running the interactiveapplication. The new ICA may be selected according to any suitablescheme. In one embodiment of the present invention, the ICA has a formatof the form shown in FIGS. 7A and 7B. As shown in FIG. 7A, but withoutlimitation, the ICA preferably comprises 32 bits. According to an errorcorrection scheme, such as a Hamming code or other suitable approach, anumber of checkbits or parity-type bits are incorporated into the ICA.In FIG. 7A, 6 such bits 110-115 are shown as bits 1, 2, 4, 8, 16, and 32corresponding to the ICA content shown in FIG. 7B. Hence 38 bits areused to transmit the ICA, with a coding rate of about 0.84. Any errorcorrection schemes suitable for minimizing errors in the transmission ofan ICA having a known format may be used.

[0115] In FIG. 7B, the components of the ICA are shown. Bits 9-32contain a program identifier 120, including a server ID and anapplication ID. Bits 3-8 are used for an industry code 125, which isassigned to large Content Providers to uniquely identify them. Bits 1and 2 correspond to time cycle identifier 130, which facilitatesre-cycling of program identifiers: when a particular application nolonger is being provided by the Content Provider identified by aparticular industry code, the Content Provider can re-use a particularprogram identifier. Time cycle identifier 130 is prefixed to ensureuniqueness of the ICA when a program identifier is used an additionaltime. Where, as shown, the time cycle identifier 130 is allocated twobits, a given program identifier 120 may be used uniquely four times.

[0116] When the interactive application has been stored, a new ICA hasbeen selected for the interactive application, and the ICA andinteractive application information have been stored in a database, thevideo service provider 1 or interactive server 5 sends a message to theContent Provider 45. This message may include a description of the typeof application, an ICA confirmation including the ICA itself, anapplication ID (including a server number and application number), anyother information, such as billing information, and a timeout value forspecifying the length of time a screen button should persist.

Case II: Content-Defined Interactive Callback Addresses

[0117] In case I, an interactive application may have been developed fora particular interactive server and was to be assigned an address bythat server. As an alternative to case I, interactive applicationsassociated with pre-developed content (that is, created specifically tobe associated with the interactive application) may already beassociated with and labeled with an ICA by the Content Provider 45. Thismay be, but is not necessarily, the case for nationally originatingprogrammers. For such content-defined ICAs, the interactive applicationand the pre-assigned ICA are both transmitted to the desired videoservice providers. The transmission may be done simply by shipping atape, magnetic disk, optical disk or other suitable medium to the videoservice provider, or alternatively, may be electronically or opticallytransmitted over a network. The receiving video service provider 1 orinteractive server 5 stores the interactive application, then adds theICA and assigns an application ID. An application ID is an identifierfor purposes of internal organization and tracking by the video serviceprovider 1. Thus, for a nationally originating program in which the ICAidentifying the program is national, the interactive server 5 of (local)video service provider 1 translates the (national) ICA to a local serveraddress of its internal database, for example on disk storage 8A. Oncethis information has been stored, a receiving video service provider 1sends a confirmation message to the Content Provider 45, including whatit has recorded as the ICA, the application ID, and a description of theapplication. As an alternative scheme, not shown in the Figures, the(local) video service provider 1 is linked to a national server runningthe interactive application, and the local server using the ICA providesa link from the subscriber to the national interactive server.

The Interactive Server

[0118] One or more interactive servers 5 may be maintained as part ofthe Level 2 service (L2, defined above in connection with FIG. 1) inorder to provide service to subscribers in a particular geographicalarea. An embodiment of the interactive server 5 according to the presentinvention may be coupled to one or more transmission paths, such as asatellite downlink, for receiving programs. The interactive server 5 isalso coupled to a level 1 network (L1, defined in connection with FIG.1), through which it interacts with subscribers 70, receiving programrequests and commands, and sending programming as requested by eachsubscriber.

[0119] An embodiment of an interactive server 5 is shown in FIG. 6. Theinteractive server 5 may include, for example, one or more processors 7,one or more memory devices 8, and one or more storage devices such asdisk storage 8A. These components may be linked to one another by a databus 6. The interactive server 5 may also include a video storage medium9, in which device interactive applications supplied by ContentProviders may be stored for retrieval upon request by a subscriber 70.

[0120] The interactive server 5 may receive input and provide output toa video service operator, represented schematically at reference numeral2, or over data link 11 to the switch 12, or over data link 3A directlyto a Content Provider 45. In response to a request by a Content Provider45 for an ICA to be associated with a program, for example, the videoservice provider 1 may interact with the interactive server 5 via I/Omechanism 4 in order to obtain an interactive application address, atwhich an interactive application will be found when stored with theinteractive server 5, and, if necessary, a port address, to combine withthe address of the interactive server 5 itself for transmission to theContent Provider 45 via a communication link 3. Under an alternativescheme, a Content Provider 45 could establish a link with theinteractive server 5 itself over communications link 3a and obtain anICA directly.

[0121] When a video service provider 1 has received an interactiveapplication from a Content Provider 45, the video service provider 1,via I/O mechanism 4, loads the interactive application into anappropriate storage medium, such as video storage 9, which-may be aseparate storage medium from the interactive server memory 8 or theinteractive server disk storage 8A, such that the interactiveapplication may be retrieved using the interactive application addressportion of the ICA furnished to the Content Provider 45.

[0122] The video service provider 1 may also interact with theinteractive server 5 to perform system management functions such as datastorage management, if such functions are not carried out automatically.

Set Top Box Architecture

[0123] A subscriber 70 to an interactive video service will be equippedwith an STB 100 for receiving transmissions and initiating aninteractive session. The functionality of the STB 100 may reside in astand-alone device, literally a box that can be placed on, or at leastnear, the television, that is similar in outward form to conventionaldevices for receiving cable programs. The STB 100 functionality couldalternatively be performed by hardware resident elsewhere, such aswithin the television or display console, or by any suitably equippedterminal device. Since the hardware may be proprietary to theinteractive video provider and may generally be a physically independentdevice, the term set top box is used here, but the invention is not solimited.

[0124] The components of an embodiment of an STB 100 that may be used toimplement the system and method according to the present invention areshown in FIG. 8. STB 100 is coupled to coaxial distribution system 66,as was briefly described in connection with FIG. 1. Input to STB 100received over coaxial distribution system 66 is handled by receiving setcomponents, either analog tuner 1210 or digital tuner/demodulator 1218.Analog tuner 1210 may be any conventional tuner suitable for use inreceiving video signals over a cable distribution system or the like.Analog signals on coaxial distribution system 66 having a particularcarrier frequency are received by analog tuner 1210 if it is tuned tothat frequency. Analog tuner 1210 is coupled to secure processorsubsystem 1212. Secure processor subsystem 1212 may be any known systemfor receiving scrambled or otherwise secured analog signals over aprivate distribution system. Typically, the secured processor subsystem1212, its components, and their functionality are compatible with remoteterminal 65 (at the head end of the coaxial distribution system 66 andshown in FIG. 1). Secure processor subsystem 1212 includes aconventional analog descrambler 1216 for descrambling signals receivedand forwarded by analog tuner 1210. Secure processor subsystem 1212 alsoincludes a non-volatile memory subsystem 1214 for storing informationnecessary for decoding received transmissions, including normal cableprogram transmissions, pay-per-view program transmissions and the like.

[0125] Digital signals on cable distribution system 66 are received bydigital tuner/demodulator 1218 if they are in a band to which thedigital tuner/demodulator 1218 is tuned. Digital tuner/demodulator 1218,which can be any suitable conventional component, demodulates signals itis tuned to receive in order to reconstruct the desired digitized analogsignal. This resulting signal is transmitted to video decoder 1220, aconventionally available device that interprets the input stream. Videodecoder 1220 thereby recovers the compressed signal to produce a videosignal.

[0126] Analog descrambler 1216 and video decoder 1220 are both coupledto graphics assist module 1222. Graphics assist module 1222 can be anyconventionally available graphics processor suitable for adding agraphics overlay onto the video signals received from the video decoder1220 and/or the analog descrambler 1216 in response to instructionsimplemented by software running on CPU 1228. The functionality ofgraphics assist module 1222 could be implemented by CPU 1228 if it weresuitably programmed and capable of sufficient throughput. As will befurther described below, graphics assist module 1222, in response toinstructions received over system bus 1224, generates a video signaloverlaid on the existing television signal indicating the availabilityof an interactive program. For example, graphics assist module 1222 maygenerate a button image, or a logo or other pattern or symbol, andinject the image into the video stream such that the image appears in adesignated portion of the screen. Information used in generating thisbutton, as described below, may be available in the signal received overcoaxial distribution system 66, or may use information stored in the STB100, such as in static memory 1229, in which the button information maybe pre-loaded.

[0127] The video stream emerging from analog descrambler 1216 or videodecoder 1220, and from graphics assist module 1222, is provided to NTSCsignal generation module 1226. As an alternative to NTSC, signalgeneration module 1226 could generate signals according to any availableand desired video format. NTSC signal generation module 1226 isconventional circuitry for transforming the output of analog descrambler1216, video decoder 1220 and graphics assist 1222 into the standard formusable by a conventional television or monitor (not shown in this view).This functionality could, alternatively, convert input signals to anysuitable standard format. As shown in FIG. 8, NTSC signal generationmodule 1226 generates a set of coordinated signals and provides them onchannel 3 or 4, 1226A, to a monitor adapted to receive and displaytelevision signals (not shown). Also transmitted by NTSC signalgeneration module 1226 to the monitor or television (not shown) is acomposite/Svideo Out signal, 1226B, and left and right audio signals,1226C.

[0128] In addition to the previously described components andfunctionality, which have to do with the receipt and provision oftelevision signals, possibly with inserted graphics, STB 100 includes anumber of components and implements several additional functions.

[0129] The processing associated with managing and controlling thefunctions of the set top box 100 is performed by CPU 1228. CPU 1228 maybe any suitable commercially available processor and preferably onecapable of performing in excess of 30 Mips, such as a Power PC orPentium chip. In running system software stored in static memory 1229(which may be an EEPROM, ROM or the like), CPU 1228 has access viasystem bus 1224 to static memory 1229 and to dynamic memory 1230, (whichmay be conventionally available memory, preferably with a storagecapacity of at least about 4-5 MB). CPU 1228 also has access via systembus 1224 to information regarding the current channel, to the graphicsassist 1222 regarding screen button or other graphical display signals,and to video decoder 1220 and digital tuner/demodulator 1218, as well asto secure processing subsystem 1212 and analog tuner 1210 in order toassert command messages to those components.

[0130] Interaction by subscriber 70 with STB 100 may be by any suitablemeans, but is preferably by conventional infrared (IR) remote control.IR controller 1232 receives signals from subscriber-controlled remotecontrol input device 1233 via an IR receiver and associated circuitry(not shown). Instructions received by IR controller 1232 may be assertedvia system bus 1224 as commands to secure processor subsystem 1212 andanalog tuner 1210, as well as to video decoder 1220 and digital tunerdemodulator 1218. IR controller 1232 can also send messages to CPU 1228when, for example, subscriber 70 requests an interactive program orother service.

[0131] Interaction by the STB 100 upstream via coaxial distributionsystem 66 and to video service provider 1 is conducted by CPU 1228through WAN communications processor 1234. WAN communications processor1234 can be any conventional device suitable for converting messagesreceived via system bus 1224 into a WAN-compatible protocol, such as IP(internet protocol). Upstream modulator 1236, which can be anyconventional device, modulates signals received from WAN communicationsprocessor 1234 for transmission over coaxial distribution system 66 andvia remote terminal 65 and network provider 10 to interactive server 5of video services provider 1 (as shown in FIG. 1).

STB Processing Associated with Operation of Several Embodiments of aSystem According to the Present Invention

[0132] In FIGS. 9-12, the processing associated with four embodiments ofthe STB 100 according to the present invention is shown in the form ofdiagrams depicting the processing states of the STB 100, conditions fortransitioning between those states and processing associated with eachstate and incident to the state transitions. The embodiment shown inFIG. 9 corresponds to the embodiment of the invention shown in FIGS. 2Aand B, FIG. 10 corresponds to FIGS. 3A and B, FIG. 11 to FIGS. 4A and B,and FIG. 12 to FIGS. 5A and B. The processor states and processingcarried out by STB 100 are implemented by CPU 1228, shown in FIG. 8. Ashas been described with reference to that figure, CPU 1228 has accessvia system bus 1224 to signals received over coaxial distribution system66 that have been descrambled or decoded as necessary by either of videodecoder 1220 or analog descrambler 1216. CPU 1228 is easily capable ofsampling these sources sufficiently frequently to detect the receipt ofnew video frames and to detect the presence and content of informationin the VBI of received video signals. In alternate embodiments of thepresent invention, the STB 100 could receive and analyze informationreceived via other in-band or out-of-band transmission paths.

[0133] The processes shown in these figures could also be represented aslogic flow diagrams. Moreover, the exact ordering of the numbered boxesof the flowcharts is not a limitation of the invention, but merely anillustration of one way in which the depicted function of eachembodiment of this aspect of the present invention may be carried out.

STB Processing Where an Application-Specific Interactive CallbackAddress Is Tranmitted with Program and Identified by a Standard ButtonOverlay

[0134] Processes performed by STB 100 in carrying out the firstembodiment the system and method according to the present invention areshown in FIG. 9. As shown, the STB 100 process begins when thesubscriber 70 turns on the STB 100 to view a program. The STB 100process at that time initializes into the idle state, 700. While in theidle state 700, the STB 100 checks a number of conditions: it checkswhether a video frame has been received; whether a screen button hasbeen selected by viewing subscriber 70; whether a “remove button”message has been received with a video frame; and whether a button timerhas exceeded a threshold value and thus expired.

[0135] If a video frame has been received, 702, STB 100 enters a newstate, 704, in which it tests the video frame, particularly the VBI ofthat frame, for the presence of an ICA. As described elsewhere in thisapplication, according to the present invention, the ICA couldalternatively be transmitted to the STB 100 by any suitable in-band orout-of-band means.

[0136] If no ICA is detected in the given frame by STB 100 at 706, theprocess returns to idle state 700. However, if an ICA is detected in thereceived frame at 708, STB 100 at 710 stores the ICA, for example indynamic memory 1230 (shown in FIG. 8). STB 100 then enters a new state,712.

[0137] In state 712, STB 100 tests the detected ICA for the presence ofinformation relating to the drawing of a screen button to indicate toviewing subscriber 70 that an interactive program is available. If suchinformation related to the configuration of the screen button is found,at 718, then STB 100 draws a custom button according to thisinformation, at 720. Also at 720, STB 100 sets a timer for the screenbutton, which STB 100 will check to ensure that the button remains onthe screen no longer than a desired maximum time. If the buttoninformation was not found in the ICA, 714, then STB 100 at 716 draws astandard button on the basis of information stored in static memory1229, shown in FIG. 8. STB 100 at 716 also sets the timer to be laterchecked in order to ensure that the standard screen button is timelyerased. After the button is drawn and the timer is set at 716 or 720,idle state 700 is resumed.

[0138] When in the idle state 700, in addition to testing whether avideo frame has been received, as described above, STB 100 also testswhether a screen button, if present on the screen, has been selected bysubscribing viewer 70. STB 100 can access this information availablefrom IR controller 1232 via system bus 1224, as shown in FIG. 8. If abutton has been selected, 722, STB 100, at 724, saves in dynamic memory1230 (shown in FIG. 8) the identity of the channel currently beingviewed by subscriber 70. STB 100 at 724 also erases the screen button,which provides feedback to subscriber 70 that the button has beenselected.

[0139] After the channel has been saved and the button erased at 724,STB 100 enters the interactive application state 726. In interactiveapplication state 726, STB 100 establishes an interactive session withinteractive server 5 of video service provider 1 over the network bysending a message containing the ICA using WAN communications processor1234 and upstream modulator 1236 (shown in FIG. 8 and described above)over coaxial distribution system 66, and via remote terminal 65 andnetwork service provider 10 to interactive server 5 of video serviceprovider 1 (shown in FIG. 1).

[0140] STB 100 remains in the interactive application state 726 as longas the interactive application invoked by the ICA and provided by videoservice provider 1 has not ended or been terminated by subscribingviewer 70 via IR controller 1232. If either of these events are detectedby STB 100 at 728, however, STB 100 at 730 retrieves from dynamic memory1230 the earlier-stored identity of the channel originally being watchedand issues a command to either video decoder 1220 and digitaltuner/demodulator 1218 or secure processor subsystem 1212 and analogtuner 1210 to re-tune to that original channel. Also at 730, STB 100deletes the ICA from dynamic memory 1230. STB 100 then returns to theidle state 700.

[0141] While in idle state 700, and in addition to testing for thereception of video frames and whether a screen button has been selected,STB 100 also checks, when a video frame has been received at 702, but noICA has been detected at 706, for a “remove button” message in the VBIof the video frame (or in any other suitable in-band or out-of-bandsignalling path). STB 100 also periodically checks whether the timer,set at 716 or 720, has expired. If either a “remove button” message hasbeen received or the expiration of the timer has been detected, at 732,then STB 100, at 734, erases the screen button and deletes the ICA fromdynamic memory 1230, if one had been previously stored. STB 100 thenreturns to its idle state 700 and continues checking for video frames,the selection of a screen button, remove button messages and timerexpirations.

STB Processing where a Well-Known Interactive Callback Address IsTransmitted with a Program and Identified by Standard Button Overlay

[0142] In FIG. 10, processes performed by STB 100 in connection with asecond embodiment of the system and method according to the presentinvention are shown in state diagram form. The STB 100 process beginswhen the subscriber 70 turns on the STB 100 to view a program. The STBprocess initializes into the idle state, 800. While in the idle state800, the STB 100 checks a number of conditions: it checks whether avideo frame has been received; whether a screen button has been selectedby viewing subscriber 70; whether a “remove button” message has beenreceived with a video frame; and whether a button timer has exceeded athreshold value and thus expired.

[0143] If a video frame has been received, at 802, STB 100 enters a newstate, 804. In this state, it tests the video frame, particularly theVBI of that frame, for the presence of a WKICA (i.e., a well-knowninteractive callback address, described above) associated with theprogram being viewed. As discussed elsewhere in this application,according to the present invention, the WKICA could alternatively betransmitted to the STB 100 by any suitable in-band or out-of-band means.

[0144] If STB 100 detects at 806 no WKICA in the given frame, theprocess returns to state 800. However, if a WKICA is detected in thereceived frame, at 808, STB 100, at 810, stores the WKICA, for examplein dynamic memory 1230 (shown in FIG. 8). STB 100 then calls the WKICA,establishes an interactive session with the WKICA, and sends the WKICAapplication the identity of the broadcast channel on which it receivedthe WKICA. STB 100 then receives from the WKICA application the specificICA, which it must call if the associated button on the screen isselected. STB 100 stores the ICA, for example in dynamic memory 1230(shown in FIG. 8) and then enters a new state, 812.

[0145] In state 812, STB 100 tests information downloaded from the WKICAinteractive session for the presence of information relating to thedrawing of a screen button to indicate to viewing subscriber 70 that aninteractive program is available. If such information related to theconfiguration of the screen button is found, at 818, then STB 100 drawsa custom button according to this information, at 820. Also at 820, STB100 sets a timer for the screen button, which it will check to ensurethat the button remains on the screen no longer than a desired maximumtime. If the button information was not received from the WKICAinteractive session, at 814, then STB 100, at 816, draws a standardbutton on the basis of information stored in static memory 1229, shownin FIG. 8. STB 100, at 816, also sets the timer to be later checked inorder to ensure that the standard screen button is timely erased. Afterthe button is drawn and the timer is set at 816 or 820, idle state 800is resumed.

[0146] When in the idle state 800, in addition to testing whether avideo frame has been received, as described above, STB 100 also testswhether a screen button, if present on the screen, has been selected byviewing subscriber 70. STB 100 can access this information, availablefrom IR controller 1232, via system bus 1224, as shown in FIG. 8. If abutton selection has been selected, 822, STB 100 at 824 saves in dynamicmemory 1230 (shown in FIG. 8) the identity of the channel currentlybeing viewed by subscriber 70. STB 100, at 824, also erases the screenbutton, thus providing feedback to subscriber 70 that the button hasbeen selected.

[0147] After the channel has been saved and the button erased, at 824,STB 100 calls the specific ICA and enters the interactive applicationstate, 826. In interactive application state 826, STB 100 initiates aninteractive session with interactive server 5 of video service provider1 over the network by sending a message containing the ICA using WANcommunications processor 1234 and upstream modulator 1236 (shown in FIG.8 and described above) over coaxial distribution system 66, and viaremote terminal 65 and network service provider 10 to interactive server5 of video service provider 1 (shown in FIG. 1).

[0148] STB 100 remains in the interactive application state 826 as longas the interactive application invoked by the ICA and provided by videoservice provider 1 has not ended or been terminated by subscribingviewer 70 via IR controller 1232. If either of these events are detectedby STB 100, at 828, at 830 it retrieves from dynamic memory 1230 theearlier-stored identity of the channel originally being watched andissues a command to either video decoder 1220 and digitaltuner/demodulator 1218 or secure processor subsystem 1212 and analogtuner 1210 to re-tune to that original channel. Also at 830, STB 100deletes the ICA from dynamic memory 1230. STB 100 then returns to theidle state 800.

[0149] In addition to testing in idle state 800 for the reception ofvideo frames and whether a screen button has been selected, STB 100 alsoconducts a further check. If, at 802, a video frame has been received,but no WKICA has been detected at 806, STB 100 checks for a “removebutton” message in the VBI of the video frame (or in any other suitablein-band or out-of-band signalling path). STB 100 also periodicallychecks whether the timer, set at 816 or 820, has expired. If either a“remove button” message has been received or the expiration of the timerhas been detected, at 832, then STB 100, at 834, erases the screenbutton and deletes the ICA from dynamic memory 1230, if one had beenpreviously stored. STB 100 then returns to its idle state 800 andcontinues checking for video frames, the selection of a screen button,remove button messages and timer expirations.

STB Processing where an Application-Specific Interactive CallbackAddress Package Is Transmitted with Program and Identified by aNon-Standard Button Overlay

[0150] A third embodiment of the processing performed by STB 100 inimplementing the system and method according to the present invention isshown in FIG. 11. The STB 100 process begins when the subscriber 70turns on the STB 100 to view a program. The STB 100 process initializesinto the idle state, 900. While in the idle state, 900, the STB 100checks a number of conditions: it checks whether a video frame has beenreceived; whether a screen button has been selected by viewingsubscriber 70; whether a “remove button” message has been received witha video frame; and whether a button timer has exceeded a threshold valueand thus expired.

[0151] If a video frame has been received, at 902, STB 100 enters a newstate, 904, in which it tests the video frame, particularly the VBI ofthat frame, for the presence of an ICAP associated with the programbeing viewed. As described above in connection with FIGS. 4A and 4B, anICAP is an interactive callback address package, described above asoptionally including non-standard or customized button information suchas: a) type(s) of buttons; b) description of buttons; c) location ofbutton(s) on screen; d) text of button(s); and e) other characteristicsof buttons. As discussed elsewhere in this application, according to thepresent invention, the ICAP could alternatively be transmitted to theSTB 100 by any suitable in-band or out-of-band means.

[0152] If STB 100, at 906, detects no ICAP in the given frame, theprocess returns to state 900. However, if an ICAP is detected in thereceived frame, at 908, STB 100 at 910 stores the ICAP, for example indynamic memory 1230 (shown in FIG. 8). STB 100 then enters a new state,912.

[0153] At 912, STB 100 tests the detected ICAP for the presence ofcustom information relating to the drawing of a screen button toindicate to viewing subscriber 70 that an interactive program isavailable. If such information related to the configuration of thescreen button is found, at 918, then STB 100 draws a custom buttonaccording to this information, at 920. Also at 920, STB 100 sets a timerfor the screen button, which it will check in order to ensure that thebutton remains on the screen no longer than a desired maximum time. Ifthe button information was not found in the ICAP, at 914, then STB 100,at 916, draws a standard button on the basis of information stored instatic memory 1229, shown in FIG. 11. STB 100, at 916, also sets thetimer to be later checked in order to ensure that the standard screenbutton is timely erased. After the button is drawn and the timer is setat 916 or 920, idle state 900 is resumed.

[0154] When in the idle state 900, in addition to testing whether avideo frame has been received, as described above, STB 100 also testswhether a screen button, if present on the screen, has been-selected bysubscribing viewer 70. STB 100 can access this information, availablefrom IR controller 1232, via system bus 1224, as shown in FIG. 8. If abutton has been selected, 922, STB 100 at 924 saves in dynamic memory1230 (shown in FIG. 8) the identity of the channel currently beingviewed by subscriber 70. STB 100, at 924, also erases the screen button,thus providing feedback to subscriber 70 that the button-has beenselected.

[0155] After the channel has been saved and the button erased, at 924,STB 100 enters the interactive application state, 926. In interactiveapplication state 926, STB 100 establishes an interactive session withinteractive server 5 of video service provider 1 over the network bysending a message containing the ICAP using WAN communications processor1234 and upstream modulator 1236 (shown in FIG. 8 and described above)over coaxial distribution system 66, and via remote terminal 65 andnetwork service provider 10 to interactive server 5 of video serviceprovider 1 (shown in FIG. 1).

[0156] STB 100 remains in the interactive application state, 926, aslong as the interactive application invoked by the ICAP and provided byvideo service provider 1 has not ended or been terminated by subscribingviewer 70 using IR controller 1232. If either of these events aredetected by STB 100, at 928, STB 100, at 930, retrieves from dynamicmemory 1230 the earlier-stored identity of the channel originally beingwatched and issues a command to either video decoder 1220 and digitaltuner/demodulator 1218, or to secure processor subsystem 1212 and analogtuner 1210 to re-tune to that original channel. Also at 930, STB 100deletes the ICAP from dynamic memory 1230. STB 100 then returns to theidle state 900.

[0157] In addition to testing in idle'state 900 for the reception ofvideo frames and whether a screen button has been selected, STB 100 alsoconducts a further check. If, at 902, a video frame has been receivedbut no ICAP has been detected, at 906, STB 100 checks for a “removebutton” message in the VBI of the video frame (or in any other suitablein-band or out-of-band signalling path). STB 100 also periodicallychecks whether the timer, set at 916 or 920, has expired. If either a“remove button” message has been received or the expiration of the timerhas been detected at 932, then STB 100 at 934 erases the screen buttonand deletes the ICAP from dynamic memory 1230, if one had beenpreviously stored. STB 100 then returns to its idle state 900 andcontinues checking for video frames, the selection of a screen button,remove button messages and timer expirations.

STB Processing where an Application-Specific Interactive CallbackAddress and Button Overlay are Both Transmitted with the Program

[0158] Referring to FIG. 12, processing by STB 100 in connection withthe fourth embodiment of the system and method according to the presentinvention is shown. In this embodiment, the button indicating theavailability of an interactive program is inserted into the signal atits point of origin and thus need not be overlaid by STB 100.

[0159] The STB 100 process begins when the subscriber 70 turns on theSTB 100 to view a program. The STB 100 process initializes into the idlestate, 1000. While in the idle state, 1000, the STB 100 checks a numberof conditions: it checks whether a video frame has been received;whether a screen button has been selected by viewing subscriber 70; andwhether a timer has expired by exceeding a threshold value.

[0160] If a video frame has been received, 1002, STB 100 enters a newstate, 1004, in which it tests the video frame, particularly the VBI ofthat frame, for the presence of an ICA associated with the program beingreviewed. As discussed elsewhere in this application, according to thepresent invention, the ICA could alternatively be transmitted to the STB100 by any suitable in-band or out-of-band means.

[0161] If STB 100 detects, at 1006, no ICA in the given frame, theprocess returns to the idle state, 1000. However, if an ICA is detectedin the received frame, 1008, STB 100, at 1010, stores the ICA, forexample in dynamic memory 1230 (shown in FIG. 8). STB 100, also at 1010,sets the timer. The STB 100 then returns to the idle state, 1000. Nobutton needs to be drawn, since a button will be present, if at all, inthe received broadcast signal and thus on the screen.

[0162] When in the idle state, 1000, in addition to testing whether avideo frame has been received, as described above, STB 100 also testswhether a screen button, if present on the screen, has been selected bysubscribing viewer 70. STB 100 can access this information, availablefrom IR controller 1232, via system bus 1224, as shown in FIG. 8. If abutton has been selected, at 1012, STB 100, at 1014, saves in dynamicmemory 1230 (shown in FIG. 8) the identity of the channel currentlybeing viewed by subscriber 70. STB 100, at 1014, need not erase thescreen button, since it was not responsible for overlaying the button.Rather, at the desired-time, the button is removed at the point oforigin, where it was inserted into the video stream.

[0163] After the channel has been saved at 1014, STB 100 enters theinteractive application state, 1016. In the interactive applicationstate, 1016, STB 100 establishes an interactive session with interactiveserver 5 of video service provider 1 over the network by sending amessage containing the ICA. STB 100 sends the message containing the ICAusing WAN communications processor 1234 and upstream modulator 1236(shown in FIG. 8 and described above) over coaxial distribution system66, and via remote terminal 65 and network service provider 10 tointeractive server 5 of video service provider 1 (shown in FIG. 1).

[0164] STB 100 remains in the interactive application state 1016 as longas the interactive application invoked by the ICA and provided by videoservice provider 1 has not ended or been terminated by subscribingviewer 70 using IR controller 1232. If either of these events aredetected by STB 100, at 1018, however, STB 100 at 1020 retrieves fromdynamic memory 1230 the earlier-stored identity of the channeloriginally being watched. STB 100 then also issues a command to eithervideo decoder 1220 and digital tuner/demodulator 1218, or to secureprocessor subsystem 1212 and analog tuner 1210, to re-tune to theoriginal channel. Also at 1020, STB 100 deletes the ICA from dynamicmemory 1230. STB 100 then returns to the idle state 1000.

[0165] In addition to testing in idle state 1000 for the reception ofvideo frames and whether a screen button has been selected, STB 100 alsoconducts a further check. If at 1002 a video frame has been received butno ICA has been detected at 1006, STB 100 checks periodically whetherthe timer, set at 1010, has expired. If either the screen button hasbeen removed from the broadcast image at its source or the expiration ofthe timer has been detected at 1022, then STB 100 at 1024 deletes theICA from dynamic memory 1230, if one had been previously stored. STB 100then returns to its idle state 1000 and continues checking for videoframes, the selection of a screen button, remove button messages andtimer expirations.

Signalling Between the Set Top Box and the Interactive Server Associatedwith Establishing an Interactive Session

[0166] When a subscriber 70 has seen an icon or button on the screenduring a particular program, and wishes to view the interactiveapplication, he or she “pushes the button” by sending the appropriatesignal to the STB 100 using a suitable user input device, such as IRremote input device 1233. The signal may be any preselected signal theinput device is capable of generating, and the STB 100 is capable ofreceiving. It could, for example, be one or more existing keys on the IRremote input device 1233. When the STB 100 receives this preselectedsignal while in state 712, 812, 912 or 1012, depending on the embodiment(in which state STB 100 tests for the selection of a button by viewingsubscriber 70, as described), the STB 100 saves the present channelnumber in dynamic memory 1230, initiates an application for setting upan interactive session, including sending a session request message tothe network service provider 10. As defined above, the L1 service, orvideo dial tone, provided by network service provider 10 represents thedata communications phase of a system for providing video services andis the part of that system that is regulated by the FCC. As describedabove in connection with FIG. 1, the network service provider 10operates the following components: the switch 12, the network controller16, the signal processing equipment 14, and the RF equipment 25, andinterfaces with the distribution network 50.

[0167] The network service provider 10 at the request of STB 100, isresponsible for establishing a session between STB 100 and theinteractive server 5. If a connection with the interactive server 5 isproperly established by the network service provider 10 and theinteractive server 5 is up and capable of conducting an interactivesession, the interactive server 5 sends a session accept message back tothe network service provider 10, which in turn sends a session acceptmessage to the STB 100.

[0168] Once the STB 100 has received the session accept message from theinteractive server 5 by way of the network service provider 10, it usesthe ICA to send an application ID request message directly via thenetwork service provider 10 (i.e., the network service provider 10service needs only to transmit but not process the message) indicatingthe application server 5 with which the session is requested. Thenetwork service provider 10 sets up an interactive session with theindicated interactive server 5 and sends a confirmation to the STB 100.When it has received this confirmation the STB 100 issues a request tothe network service provider 10 to connect with the interactive serve 5.The network service provider 10 then notifies the interactive server 5of the request. If the interactive server 5 is able to respond to therequest, the network service provider 10 establishes a connectionbetween the interactive service 5 and the STB 100, and the interactivesession proceeds.

[0169] The foregoing describes a preferred embodiment of the presentinvention. Various changes and modifications to what is disclosed may beadopted or implemented without departing from the scope or spirit of theinvention.

What is claimed is:
 1. A device for switching from a first programtransmitted over a first channel to a second program transmitted over asecond channel upon receiving a signal indicating the availability ofthe second program and upon selection by a user, comprising: a receivingset, having at least one receiver, for receiving the program on thefirst channel, and for receiving the signal indicating availability ofthe second program, and capable of being adjusted from receiving thefirst program on the first channel to receiving the second program overthe second channel; and a processor, coupled to the receiving set andadapted to receive a selection signal originating with the user, theprocessor being programmed to process transmissions received by thereceiving set to detect the signal indicating the availability of thesecond program, and to cause the receiving set to adjust to the secondchannel to receive the second program upon receiving a selection signalfrom the user.
 2. The device of claim 1, in which the signal indicatingthe availability of the second channel is included in the first programtransmission, wherein the processor is further programmed to derive thesignal indicating the availability of the second program channel fromthe first program transmission.
 3. The device of claim 2, wherein thesignal indicating the availability of the second program is included ina vertical blanking interval of the first program transmission, theprocessor being further programmed to derive the signal indicating theavailability of the second program channel from the vertical blankinginterval of the first program.
 4. The device of claim 2, wherein thesignal indicating the availability of the second program is included inan image carried in the first program transmission.
 5. The device ofclaim 2, in which the processor is coupled to a network, and a videoservice provider coupled to the network is capable of sending to thedevice a signal indicating the identity of the second channel andsending the second program over the second channel in response to arequest, and in which the signal indicating the availability of thesecond program channel includes an address, wherein the processor isfurther programmed to: send a request over the network to the videoservice provider; receive a channel identity from the video serviceprovider over the network; and cause the receiving set to adjust to thesecond channel for receiving the second program.
 6. The device of claim5, wherein the second program is an interactive program.
 7. The deviceof claim 1, further comprising a memory means coupled to the processor,and wherein the processor is further programmed to: store the identityof the channel of the first television program in the memory means priorto causing the receiver to adjust to the second channel; retrieve theidentity of the first channel from the memory means at a desired time;and cause the receiving set to re-adjust to the first channel to receivethe first program.
 8. A device for allowing a viewer to switch a displaydevice from a first program transmitted over a first channel to a secondprogram transmitted over a second channel upon receiving a signalindicating the availability of the second program, the device coupled toa display means, comprising: a receiving set, having at least onereceiver, for receiving a program on the first channel, and forreceiving the signal indicating availability of the second program andcapable of being adjusted from receiving the first program on the firstchannel to receiving the second program over the second channel; meansfor receiving a viewer request that the device switch to the secondprogram; and a processor, coupled to the receiver, to the means forreceiving a viewer request, and to the display means, and programmed to:process transmissions received by the receiving set to detect the signalindicating the availability of the second program; generate a messageindicative of the availability of the second program and display themessage on the display means; receive a viewer request that the deviceswitch to the second program; and upon receipt of the viewer request,cause the receiving set to adjust to the second channel to receive thesecond program.
 9. The device of claim 8, wherein the signal indicatingthe availability of the second program channel is included in the firstprogram transmission, the processor being further programmed to: derivethe signal indicating the availability of the second program channelfrom the first program transmission.
 10. The device of claim 9, whereinthe signal indicating the availability of the second program includesinformation for use in generating the message indicative of theavailability of the second program, and wherein the processor is furtherprogrammed to generate the message indicative of the availability of thesecond program using the information present in the signal indicatingthe availability of the second program.
 11. the device of claim 9, inwhich the processor is coupled to a network, the network is coupled to avideo service provider capable of sending a signal indicating theidentity of a second channel and of sending a program over the networkon the second channel in response to a request, and in which the signalindicating the availability of the second program channel includes anaddress, wherein the processor is further programmed to: derive theaddress from the signal indicating the availability of the secondprogram channel; assert a request containing the address to the videoservice provider over the network; and receive the identity of thesecond channel from the video service provider over the network.
 12. Thedevice of claim 11, wherein the second program is an interactiveprogram.
 13. The device of claim 8, further comprising at least oneinformation storage device coupled to the processor.
 14. The device ofclaim 13, wherein information for generating a message indicative of theavailability of the second program, for display on the display means, ispre-stored in one of the at least one information storage devices, andwherein the processor is further programmed to generate the messageusing the pre-stored information.
 15. The device of claim 13, whereinthe processor is further programmed to: store the identity of the firstchannel in one of the at least one information storage devices prior tocausing the receiving set to adjust to the second channel; retrieve theidentity of the first channel from the storage device at a desired time;and cause the receiving set to re-adjust to the first channel to receivethe first program.
 16. A device for switching from a first programtransmitted over a first channel to an interactive program transmittedover a second channel upon receiving a signal indicating theavailability of the interactive program and upon selection by a viewer,the device coupled to a display means and coupled to a network, thenetwork in turn coupled to a video service provider capable of providingthe interactive program over the second channel, the device comprising:a receiving set for receiving the first program and for receiving thesignal indicating availability of the interactive program, the receivingset having at least one receiver and being coupled to the network, andcapable of being adjusted from receiving the first program on the firstchannel to receiving the interactive program over the second channel;and a processor adapted to receive a selection signal originating withthe viewer, coupled to the receiving set and coupled to the network, theprocessor being programmed to: process transmissions received by thereceiving set to detect the signal indicating the availability of theinteractive program; and cause the receiving set to adjust to the secondchannel to receive the interactive program for viewing on the televisionupon receiving a selection signal from the viewer.
 17. The device ofclaim 16, wherein the signal indicating the availability of theinteractive program channel is included in the first programtransmission, and the processor is further programmed to derive thesignal indicating the availability of the interactive program channelfrom the first program transmission.
 18. The device of claim 17, whereinthe signal indicating availability of the interactive program channel isincluded in a vertical blanking interval of the first programtransmission, the processor being further programmed to derive thesignal indicating the availability of the second program channel fromthe vertical blanking interval of the first program.
 19. The device ofclaim 17, wherein the video service provider is capable of sending overthe network to the device a signal indicating the identity of a secondchannel and the interactive program over the second channel in responseto a request from the device, the signal indicating the availability ofthe interactive program channel including an identifying code, theprocessor further programmed to: send over the network to the videoservice provider a request for the interactive program, the requestincluding the identifying code; receive a channel identity from thevideo service provider over the network; and cause the receiving set toadjust to the second channel for receiving the second program.
 20. Thedevice of claim 17, wherein the video service provider is capable ofbeing accessed by a first message sent by the device including a firstidentifying code and of sending over the network to the device a secondmessage including a second identifying code indicative of the locationof the interactive program, and wherein the video service provider isalso capable, upon receiving from the device a third message includingthe second address, of sending to the device a fourth message includingthe identity of a second channel and transmitting an interactive programassociated with the first and second address over the network to thedevice, wherein the processor is further programmed to: send over thenetwork to the video service provider the first message including thefirst identifying code; receive over the network from the video serviceprovider the second message including the second identifying code,indicative of the location of the interactive program; send over thenetwork to the video service provider the third message including thesecond address, for requesting the interactive program; receive over thenetwork from the interactive server the fourth message including theidentity of the second channel; and adjust the receiving set to thesecond channel to receive the interactive program transmitted over thenetwork by the video service provider.
 21. A device for use with adisplay device to allow a viewer of a first program transmitted over afirst channel to switch to a second channel to receive an interactiveprogram on receipt of a signal indicative of at least the availabilityof an identifying code for the interactive program, the viewer beingequipped with an input means for issuing the request, the devicecomprising: a receiving set adapted for receiving transmissions on thefirst channel, for being adjusted from receiving transmissions over thefirst channel to receiving an interactive program over the secondchannel and, further, for receiving the transmission carrying the signalindicative of the availability of an identifying code for the secondtransmission; means for receiving viewer input; means for generating avideo signal carrying a desired image and for combining that signal witha signal being received by the receiver for viewing on the displaydevice; processing means coupled to the receiving set, to the means forgenerating a video signal, and to the means for receiving viewer-input,and programmed to: detect the signal indicative of the availability ofan identifying code for the interactive program; cause the means forgenerating a video signal to generate a signal indicative of theavailability of the interactive program and combine that signal with thesignal being received by the receiving set; detect a signal received bythe means for receiving viewer input indicative of a viewer request toview the second transmission; and cause the receiving set to adjust tothe second channel to receive the interactive program for viewing on thedisplay device.
 22. The device of claim 21, further comprising a memorymeans coupled to the processor and wherein information for use ingenerating a visual indication of the availability of the interactiveprogram is stored in the memory means, and the means for generating avideo signal for display on the display device indicative of theavailability of the interactive program transforms the informationstored in the memory means in order to generate the visual indication ofthe availability of the interactive program.
 23. The device of claim 21,further comprising memory means coupled to the processor and wherein theprocessor is further adapted to store the identity of the first channelprior to causing the receiving set to adjust to the second channel toreceive the interactive program.
 24. The device of claim 23, wherein theprocessor is further programmed to retrieve the identity of the firstchannel upon termination of the interactive program, and to cause thereceiving set to re-adjust to receive the first transmission on thefirst channel for viewing on the display device.
 25. A method forallowing a viewer equipped with a television signal receiving devicecoupled to a display device to switch between a first television programon a first channel and a second television program on a second channel,wherein a signal transmitted in association with the first televisionprogram indicates that the second television program is available,wherein the viewer is equipped to receive the second television programupon request, and wherein the television signal receiving device isadapted for receiving viewer requests, comprising the steps of: a.receiving the first television program; b. receiving the signaltransmitted in association with the first television program indicatingthe availability of the second television program; c. generating animage, based on receipt of the signal indicating the availability of thesecond television program, for displaying on the display device tonotify the television viewer of that availability; d. receiving a viewerrequest to switch to the second program; and e. switching to the secondchannel to receive the second program.
 26. The method of claim 25, inwhich the signal transmitted in association with the first televisionprogram is incorporated in the vertical blanking interval of thatprogram, further comprising the step of deriving the signal from thevertical blanking interval after receiving that signal and prior togenerating an image based on receipt of that signal.
 27. The method ofclaim 25, wherein the step of generating the image for display on thedisplay device to indicate the availability of the second programincludes operation only upon information in the signal transmitted inassociation with the first television program.
 28. The method of claim27, wherein the step of generating the image for display on the displaydevice includes only displaying the received signal, the image beingpresent in the image of the first television program.
 29. The method ofclaim 25 in which the television signal receiving device includes amemory, wherein the step of generating an image based on receipt of thesignal indicating the second television program is available includesreading information from the memory and using the information read frommemory in generating the image.
 30. A method for switching between atelevision program and an interactive program, wherein the televisionprogram signal is accompanied by a signal carrying a message providingan identification code for an associated interactive program availableon an interactive server on a network, and the viewer is equipped with ameans for receiving the television signal, a means for receiving themessage indicating that an interactive program is available, a displaymeans, a means for generating and overlaying an image on the displaymeans, an information storage means, a means coupled to the network forcommunicating with the interactive server, and an input means coupled tothe means for communicating with the interactive server for requestingthe interactive television program, comprising the steps of: a.receiving the television program signal; b. receiving the signalcarrying the message providing the interactive program identificationcode; c. generating an image for display on the television screenindicative of the availability of an interactive program; d. receiving asignal from the input means requesting the interactive program; e.storing the identity of the channel on which the television program istransmitted in a storage medium for later retrieval; f. establishingcommunication with the interactive server over the network using theidentification code; g. receiving the interactive program over thenetwork from the interactive server; h. terminating communication withthe interactive server upon the earlier of the termination of theinteractive program or a viewer request to terminate; i. retrieving theidentity of the television program channel from the information storagemeans; and j. tuning the means for receiving television signals to thechannel having the identity retrieved from the information storagemeans.
 31. A system for providing video services to a set of viewers,including receiving program content from at least one Content Providerover at least one transmission path, receiving requests for servicesfrom viewers over a distribution system to which the system and theviewers are coupled, and providing program content to viewers who haverequested such program content over the distribution system, comprising:a switch for receiving and routing program transmissions from at leastone Content Provider over the transmission media, and for receiving androuting viewer requests; distribution system interface equipment coupledto the switch for allowing the switch to route program content to andreceive requests from viewers over the distribution system; and a servercoupled to the switch for managing program content received from ContentProviders and for processing viewer requests for content.
 32. The systemof claim 31, wherein the distribution system interface equipmentcomprises a network controller, signal processing equipment coupled tothe network Controller, and RF equipment coupled to the signalprocessing equipment.
 33. The system of claim 31, further comprising atleast one means for inserting information in program content receivedfrom the at least one Content Provider, the insertion means beingcoupled to the server.
 34. The system of claim 33, wherein the insertionmeans inserts into the program content information usable by a viewer toinvoke services from the server.
 35. The system of claim 33, wherein theprogram content transmission is a television signal and the insertionmeans inserts information in the vertical blanking interval of thetelevision signal.
 36. A system for providing programs and interactiveprograms to a set of viewers to which the system is coupled by adistribution system, including receiving programs from at least oneprogram provider via a first transmission path, receiving interactiveprograms from at least one interactive program provider via a secondtransmission path, receiving over a distribution system to which thesystem and the viewer communications means are coupled viewer requestsfor interactive programs, and providing over the distribution systeminteractive programs to viewers who have requested such content,comprising: a switch for receiving and routing program and interactiveprogram transmissions from the at least one program provider over thetransmission media, and for receiving and routing viewer requests;distribution system interface equipment coupled to the switch forallowing the switch to route programs to and receive requests fromviewers over the distribution system; and an interactive server coupledto the switch for receiving and managing interactive programs receivedfrom interactive program providers and for responding to viewer requestsfor the interactive programs.
 37. The system of claim 36, wherein thedistribution system interface equipment comprises a network controller,signal processing equipment, and RF equipment.
 38. The system of claim37, wherein the distribution system interface equipment furthercomprises electrical/optical converting equipment.
 39. The system ofclaim 36, wherein the interactive server comprises a processorprogrammed to: receive from an interactive program provider a requestfor an identifying code corresponding to an interactive program; assignan identifying code to an interactive program provided by an interactiveprogram provider; and transmit the identifying code to the interactiveprogram provider over the first transmission path.
 40. The system ofclaim 39, wherein the interactive server further comprises a videostorage device for storing interactive programs and a data storagedevice for storing identifying codes and data associating video storagedevice locations for the interactive programs with the correspondingidentifying codes, and wherein the processor. is further programmed to:receive the interactive program; store the interactive program at aknown location in the video storage device; associate the identifyingcode for an interactive program with the location in the video storagedevice at which the interactive program is stored; and store theassociation of the identifying code and the location in video storage inthe data storage device.
 41. The system of claim 40, wherein theprocessor is further programmed to: receive over the distribution systemfrom a viewer a first message including an identifying code for aninteractive program; and send over the distribution system to the viewera second message indicative of a channel on which the program will betransmitted to the viewer over the network; and transmit the programover the distribution system to the subscriber over the indicatedchannel.
 42. The system of claim 36, wherein the interactive servercomprises a processor programmed to: receive a request for anidentifying code corresponding to an interactive program; assign acommon identifying code to an interactive program provided by aninteractive program provider; and transmit the common identifying codeto the interactive program provider over the first transmission medium.43. The claim of claim 42, wherein the interactive server furthercomprises a video storage device for storing interactive programs, and adata storage device for storing identifying codes and data associatingvideo storage device locations for the interactive programs with thecorresponding identifying codes, and wherein the processor is furtherprogrammed to: associate in the data storage device the commonidentifying code with a program-specific identifying code callable bythe viewer; receive an interactive program from the program provider;store the interactive program in one of the at least one informationstorage devices at a known location; associate the program-specificidentifying code with the location of the interactive program in videostorage device; receive over the distribution system from a viewer afirst message including a common identifying code indicative of thelocation in the data storage device of the program-specific identifyingcode and also including the identity of the channel to which the vieweris tuned; retrieve with the common identifying code the program-specificidentifying code and send over the distribution system to the viewer asecond message indicative of the program-specific identifying code; sendover the network to the viewer a third message including theprogram-specific identifying code; send over the distribution system tothe viewer a fourth message indicative of a channel on which the programwill be transmitted to the viewer over the network; and transmit theprogram to the viewer over the distribution on the indicated channel.44. A method for identifying to television viewers, during transmissionof a first television program, that a second television programassociated with the first television program is available, comprisingthe steps of: generating a signal identifying the availability of thesecond television program; and transmitting the signal identifying theavailability of the second television program in coordination with thefirst television program during at least one portion of the firsttelevision program when the second television program is available forviewing.
 45. The method of claim 44, wherein the signal identifying theavailability of the second television program is transmitted in thevertical blanking interval of the first television program.
 46. Themethod of claim 45, wherein the signal identifying the availability ofthe second television program is transmitted over an out-of-bandtransmission path.
 47. A method for identifying to viewers, duringtransmission of a first television program, that an interactive programassociated with the first television program is available to viewersthat are subscribers of a video service provider, including the stepsof: transmitting to the video service provider the interactive program;receiving from the video service provider an identifying code associatedwith the interactive program; generating a signal including theidentifying code associated with the interactive program for use inaccessing the interactive program; and transmitting the signal includingthe identifying code in coordination with the first television programduring at least one portion of the first television program when theinteractive television program is available for viewing.
 48. The methodof claim 47, wherein the signal including an identifying code istransmitted in the vertical blanking interval of the first televisionprogram.
 49. The method of claim 47, wherein the signal including anidentifying code is transmitted over an out-of-band transmission path.50. A method of operating a video service system for delivering aprogram over a network to a subscriber upon request, the video servicesystem including an information storage device, comprising the steps of:receiving over a network from a subscriber a first message including afirst identifying code indicative of the location in the informationstorage device of a program; sending over the network to the subscribera second message indicative of a channel on which the program will betransmitted to the subscriber over the network; and transmitting theprogram to the subscriber over the indicated channel.
 51. The method ofclaim 50, further comprising the steps of: generating a remove buttonmessage; and transmitting the remove button message to the subscriber.52. The method of claim 51, wherein the remove button message istransmitted to the subscriber in the vertical blanking interval of theinteractive program.
 53. The method of claim 51, wherein the removebutton message is transmitted to the subscriber via out-of-bandsignalling.
 54. A method of operating a video service system fordelivering a program over a network to a subscriber upon request, thevideo service system including an information storage device,comprising-the steps of: receiving over a network from a subscriber afirst message including a first identifying code indicative of thelocation in an information storage device of a second address;retrieving from the information storage device, at the locationindicated by the first identifying code, the second identifying code;sending over the network to the subscriber a second message includingthe second identifying code; receiving from the subscriber a thirdmessage including the second identifying code; transmitting to thesubscriber a message indicating the identity of a channel on which theprogram will be delivered; and transmitting to the subscriber theprogram over the indicated channel.
 55. A method of operating a videoservice system for delivering a program originating with a ContentProvider over a network to a subscriber upon request, the video servicesystem including at least one information storage device, comprising thesteps of: receiving a request for an identifying code from a ContentProvider; providing an identifying code, associated with a location inthe information storage device, to the Content Provider; receiving aprogram from the Content Provider; storing the program in an informationstorage device at a known location; associating the identifying codewith the location of the program in an information storage device;receiving over a network from a subscriber a first message including anidentifying code indicative of the location in the information storagedevice of a program; sending over the network to the subscriber a secondmessage indicative of a channel on which the program will be transmittedto the subscriber over the network; and transmitting the program to thesubscriber over the indicated channel.
 56. A method of operating a videoservice system for delivering a program originating with a ContentProvider over a network to a subscriber upon request, the video servicesystem including at least one information storage device, comprising thesteps of: a. receiving a request for an identifying code from a ContentProvider; b. providing a common identifying code, associated with alocation in one of the at least one information storage devices, to theContent Provider in response to the request; c. associating in one ofthe at least one information storage devices in a video service systemthe common identifying code with a program-specific identifying codecallable by the subscriber; d. receiving the program from the ContentProvider; e. storing the program in one of the at least one informationstorage devices at a known location; f. associating the program-specificidentifying code with the location of the program in one of the at leastone information storage devices; g. receiving over the network from asubscriber a first message including a common identifying codeindicative of the location in the appropriate information storage deviceof the program-specific identifying code; h. sending over the network tothe subscriber a second message indicative of the program-specificidentifying code; i. receiving over the network from the subscriber athird message including the program-specific identifying code; j.sending over the network to the subscriber a fourth message indicativeof a channel on which the program will be transmitted to the subscriberover the network; and k. transmitting the program to the subscriber overthe indicated channel.